package vip.zhenzicheng.demo.spring.framework.beans.factory.support;

import vip.zhenzicheng.demo.spring.framework.beans.BeanDefinition;

/**
 * 注册表对象
 *
 * @author zhenzicheng
 * @date 2022-05-28 12:35
 */
public interface BeanDefinitionRegistry {
  //注册BeanDefinition对象到注册表中
  void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

  //从注册表中删除指定名称的BeanDefinition对象
  void removeBeanDefinition(String beanName) throws Exception;

  //根据名称从注册表中获取BeanDefinition对象
  BeanDefinition getBeanDefinition(String beanName) throws Exception;

  boolean containsBeanDefinition(String beanName);

  int getBeanDefinitionCount();

  String[] getBeanDefinitionNames();
}
